package org.example.car.system.config;


import com.alibaba.excel.EasyExcel;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;

public class ExcelDownloader {

    /**
     * 下载 Excel 文件
     *
     * @param response HttpServletResponse 对象
     * @param data     要导出的数据列表
     * @param clazz    数据类型的 Class 对象
     * @param fileName 下载的文件名
     * @throws IOException 如果发生 I/O 错误
     */
    public static <T> void download(HttpServletResponse response, List<T> data, Class<T> clazz, String fileName) throws IOException {
        // 设置响应头
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx");

        // 使用 EasyExcel 将数据写入到响应流中
        EasyExcel.write(response.getOutputStream(), clazz).sheet("Sheet1").doWrite(data);
    }
}
